Questi datataset sono scaricabili dal seguente repo.
library(readxl)
## Warning: il pacchetto 'readxl' è stato creato con R versione 4.4.2
library(openxlsx)
## Warning: il pacchetto 'openxlsx' è stato creato con R versione 4.4.2
library(dplyr)
## Warning: il pacchetto 'dplyr' è stato creato con R versione 4.4.2
##
## Caricamento pacchetto: 'dplyr'
## I seguenti oggetti sono mascherati da 'package:stats':
##
## filter, lag
## I seguenti oggetti sono mascherati da 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
library(plotly)
##
## Caricamento pacchetto: 'plotly'
## Il seguente oggetto è mascherato da 'package:ggplot2':
##
## last_plot
## Il seguente oggetto è mascherato da 'package:stats':
##
## filter
## Il seguente oggetto è mascherato da 'package:graphics':
##
## layout
library(ineq)
library(knitr)
## Warning: il pacchetto 'knitr' è stato creato con R versione 4.4.2
nomi_dati = paste0("Aida_", 1:14, ".xlsx")
data = read.xlsx(nomi_dati[1])
for (nome in nomi_dati[2:length(nomi_dati)]){
data <- rbind(data, read.xlsx(nome))
}
Settori <- read_excel("Settori_Industriali.xlsx")
# Pulizia nomi colonne: sostituzione di "..", ".", "%", "/", "()", ecc.
colnames(data) <- gsub("\\.\\.", "_", colnames(data))
colnames(data) <- gsub("\\.", "_", colnames(data))
colnames(data) <- gsub("%", "Anno", colnames(data))
colnames(data) <- gsub("/", "_", colnames(data))
colnames(data) <- gsub("[()]", "", colnames(data))
colnames(data) <- gsub("Dipendenti", "Dipendenti_Anno", colnames(data))
colnames(data) <- gsub("EUR", "EUR_Anno", colnames(data))
# Rimozione di colonne non necessarie
data <- data[, -c(1, 6,16,26,36,46,56,66,76,86,96,106,116,128,131,132,133,135)]
# Aggiunta di una colonna con i primi tre caratteri del codice NACE
data$NACE_Rev_2_first_3 <- substr(data$NACE_Rev_2, 1, 3)
# Ordinamento dei dati in base alla nuova colonna
data <- data[order(data$NACE_Rev_2_first_3), ]
# Sostituzione dei valori "n.d." con NA
data[data == "n.d."] <- NA
data <- data[c(1:94554),]
dim(data)
## [1] 94554 121
# Salvataggio dei dati trasformati
# write.xlsx(data, "data.xlsx")
I nostru sono codici NACE a 3 cifre sul settore dei trasporti.
# Suddividere il dataset in una lista di data frame basati sul codice NACE
lista_dataset <- split(data, paste0("NACE_", data$NACE_Rev_2_first_3))
# View(lista_dataset)
### TRASFORMAZIONE IN PANEL DATA ###
# trasformiamo ciascun dataset della lista lista_dataset in formato panel data,
# un formato utile per analisi temporali e longitudinali.
# Carica il pacchetto necessario
library(tidyr)
# Trasformazione in panel data
lista_panel <- lapply(lista_dataset, function(df) {
df %>%
pivot_longer(
cols = matches("(_Anno_|_%)\\d{4}$"), # Seleziona colonne con "_Anno_" o "_%" seguito da 4 cifre
names_to = c("Variabile", "Anno"), # Crea le colonne "Variabile" e "Anno"
names_pattern = "(.*)_(?:Anno|%)_(\\d{4})", # Estrai nome variabile e anno
values_to = "Valore"
) %>%
pivot_wider(
names_from = Variabile, # Trasforma "Variabile" in colonne
values_from = Valore # Usa i valori corrispondenti
)
})
# View(lista_panel)
# Funzione per calcolare gli indici di concentrazione
calcola_indici_ricavi <- function(df) {
df <- df %>%
mutate(Ricavi_delle_vendite_migl_EUR = as.numeric(Ricavi_delle_vendite_migl_EUR)) %>%
filter(!is.na(Ricavi_delle_vendite_migl_EUR))
# Calcolo degli indici per ciascun anno
indici <- df %>%
group_by(Anno) %>%
summarize(
CR4 = sum(sort(Ricavi_delle_vendite_migl_EUR, decreasing = TRUE)[1:4]) / sum(Ricavi_delle_vendite_migl_EUR) * 100,
HHI = sum((Ricavi_delle_vendite_migl_EUR / sum(Ricavi_delle_vendite_migl_EUR))^2) * 10000,
Gini = ineq(Ricavi_delle_vendite_migl_EUR, type = "Gini")
)
return(indici)
}
# Applicazione della funzione agli elementi della lista
# In questa sezione, applichiamo la funzione calcola_indici_ricavi a tutti i
# dataset nella lista lista_panel. Il risultato è una lista di indici calcolati
# per ciascun gruppo settoriale.
# Calcolo degli indici per ciascun dataset nella lista
lista_indici_ricavi <- lapply(lista_panel, calcola_indici_ricavi)
# Assegna un nome significativo ai risultati
names(lista_indici_ricavi) <- paste0("Indici_", names(lista_panel))
# Visualizza la struttura della lista risultante
str(lista_indici_ricavi)
## List of 15
## $ Indici_NACE_491: tibble [9 × 4] (S3: tbl_df/tbl/data.frame)
## ..$ Anno: chr [1:9] "2015" "2016" "2017" "2018" ...
## ..$ CR4 : num [1:9] 91.8 91.2 91.6 91.9 92.4 ...
## ..$ HHI : num [1:9] 5561 5268 5297 5178 5081 ...
## ..$ Gini: num [1:9] 0.854 0.855 0.858 0.858 0.854 ...
## $ Indici_NACE_492: tibble [9 × 4] (S3: tbl_df/tbl/data.frame)
## ..$ Anno: chr [1:9] "2015" "2016" "2017" "2018" ...
## ..$ CR4 : num [1:9] 67 68.1 80.1 79.6 77.6 ...
## ..$ HHI : num [1:9] 1369 1476 3618 3419 3049 ...
## ..$ Gini: num [1:9] 0.678 0.7 0.792 0.803 0.799 ...
## $ Indici_NACE_493: tibble [9 × 4] (S3: tbl_df/tbl/data.frame)
## ..$ Anno: chr [1:9] "2015" "2016" "2017" "2018" ...
## ..$ CR4 : num [1:9] 20.2 19.4 19.1 17.2 16.2 ...
## ..$ HHI : num [1:9] 159 147 139 133 124 ...
## ..$ Gini: num [1:9] 0.861 0.866 0.869 0.864 0.863 ...
## $ Indici_NACE_494: tibble [9 × 4] (S3: tbl_df/tbl/data.frame)
## ..$ Anno: chr [1:9] "2015" "2016" "2017" "2018" ...
## ..$ CR4 : num [1:9] 7.54 7.61 7.71 7.65 7.43 ...
## ..$ HHI : num [1:9] 29.3 29.3 29.7 28.8 27.9 ...
## ..$ Gini: num [1:9] 0.798 0.795 0.797 0.796 0.797 ...
## $ Indici_NACE_495: tibble [9 × 4] (S3: tbl_df/tbl/data.frame)
## ..$ Anno: chr [1:9] "2015" "2016" "2017" "2018" ...
## ..$ CR4 : num [1:9] 94.3 94.5 90.5 93.9 93.9 ...
## ..$ HHI : num [1:9] 4514 4205 3277 4242 4473 ...
## ..$ Gini: num [1:9] 0.88 0.887 0.839 0.87 0.875 ...
## $ Indici_NACE_501: tibble [9 × 4] (S3: tbl_df/tbl/data.frame)
## ..$ Anno: chr [1:9] "2015" "2016" "2017" "2018" ...
## ..$ CR4 : num [1:9] 87.5 87.5 88.4 88.1 88.7 ...
## ..$ HHI : num [1:9] 5381 5493 5484 5593 5785 ...
## ..$ Gini: num [1:9] 0.981 0.981 0.982 0.983 0.983 ...
## $ Indici_NACE_502: tibble [9 × 4] (S3: tbl_df/tbl/data.frame)
## ..$ Anno: chr [1:9] "2015" "2016" "2017" "2018" ...
## ..$ CR4 : num [1:9] 54.3 55.4 54.2 51.9 51 ...
## ..$ HHI : num [1:9] 1029 1012 1014 893 879 ...
## ..$ Gini: num [1:9] 0.838 0.83 0.837 0.847 0.859 ...
## $ Indici_NACE_503: tibble [9 × 4] (S3: tbl_df/tbl/data.frame)
## ..$ Anno: chr [1:9] "2015" "2016" "2017" "2018" ...
## ..$ CR4 : num [1:9] 86.1 86.5 85.9 85.8 84.9 ...
## ..$ HHI : num [1:9] 3272 3253 3198 3219 3121 ...
## ..$ Gini: num [1:9] 0.921 0.924 0.922 0.923 0.92 ...
## $ Indici_NACE_504: tibble [9 × 4] (S3: tbl_df/tbl/data.frame)
## ..$ Anno: chr [1:9] "2015" "2016" "2017" "2018" ...
## ..$ CR4 : num [1:9] 56.1 52.6 48.6 52 47.8 ...
## ..$ HHI : num [1:9] 1018 990 885 895 852 ...
## ..$ Gini: num [1:9] 0.611 0.606 0.599 0.598 0.583 ...
## $ Indici_NACE_511: tibble [9 × 4] (S3: tbl_df/tbl/data.frame)
## ..$ Anno: chr [1:9] "2015" "2016" "2017" "2018" ...
## ..$ CR4 : num [1:9] 87.6 68.8 76.1 73.3 79.8 ...
## ..$ HHI : num [1:9] 5616 1650 1619 1455 1693 ...
## ..$ Gini: num [1:9] 0.959 0.897 0.902 0.892 0.906 ...
## $ Indici_NACE_512: tibble [9 × 4] (S3: tbl_df/tbl/data.frame)
## ..$ Anno: chr [1:9] "2015" "2016" "2017" "2018" ...
## ..$ CR4 : num [1:9] 88.2 88 88.7 88.2 87.4 ...
## ..$ HHI : num [1:9] 2753 2980 3162 3982 4044 ...
## ..$ Gini: num [1:9] 0.787 0.783 0.775 0.789 0.774 ...
## $ Indici_NACE_521: tibble [9 × 4] (S3: tbl_df/tbl/data.frame)
## ..$ Anno: chr [1:9] "2015" "2016" "2017" "2018" ...
## ..$ CR4 : num [1:9] 33.7 31.1 30.6 29.7 27.9 ...
## ..$ HHI : num [1:9] 465 362 343 313 282 ...
## ..$ Gini: num [1:9] 0.857 0.851 0.853 0.852 0.85 ...
## $ Indici_NACE_522: tibble [9 × 4] (S3: tbl_df/tbl/data.frame)
## ..$ Anno: chr [1:9] "2015" "2016" "2017" "2018" ...
## ..$ CR4 : num [1:9] 14 14 15.3 15.1 15 ...
## ..$ HHI : num [1:9] 104.9 101.5 103.5 101.6 99.7 ...
## ..$ Gini: num [1:9] 0.881 0.884 0.889 0.89 0.892 ...
## $ Indici_NACE_531: tibble [9 × 4] (S3: tbl_df/tbl/data.frame)
## ..$ Anno: chr [1:9] "2015" "2016" "2017" "2018" ...
## ..$ CR4 : num [1:9] 100 100 100 100 100 ...
## ..$ HHI : num [1:9] 9996 9985 9973 9972 9973 ...
## ..$ Gini: num [1:9] 0.947 0.95 0.952 0.95 0.944 ...
## $ Indici_NACE_532: tibble [9 × 4] (S3: tbl_df/tbl/data.frame)
## ..$ Anno: chr [1:9] "2015" "2016" "2017" "2018" ...
## ..$ CR4 : num [1:9] 76.7 76.5 70.9 71.9 73.9 ...
## ..$ HHI : num [1:9] 1642 1678 1535 1545 1648 ...
## ..$ Gini: num [1:9] 0.951 0.951 0.943 0.95 0.956 ...
# Preparazione dei Dati per il Grafico
# Combina i dataset in un unico data frame, aggiungendo un identificatore per ciascun settore
df_indici <- bind_rows(lista_indici_ricavi, .id = "Name")
# Unisce le informazioni sui settori
df_indici <- df_indici %>%
left_join(Settori, by = "Name")
# Trasforma la colonna Anno in formato Data
df_indici <- df_indici %>%
mutate(Anno = as.Date(paste0(Anno, "-01-01")))
# View(df_indici)
# Grafico per CR4
p1 <- ggplot(df_indici, aes(x = Anno, y = CR4, color = Settore)) +
geom_line(size = 1) + # Linee per le serie temporali
geom_point(size = 2) + # Punti per gli anni
labs(title = "Serie Temporale dell'Indice CR4 per Settore",
x = "Anno", y = "CR4 (%)") + # Titolo e etichette degli assi
theme_minimal() + # Tema grafico minimale
theme(legend.position = "bottom") + # Posizione della legenda
guides(color = guide_legend(ncol = 2)) # Legenda in due colonne per leggibilità
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# Visualizza il grafico CR4 come interattivo
ggplotly(p1)
# Grafico per HHI
p2 <- ggplot(df_indici, aes(x = Anno, y = HHI, color = Settore)) +
geom_line(size = 1) +
geom_point(size = 2) +
labs(title = "Serie Temporale dell'Indice HHI per Settore",
x = "Anno", y = "Indice HHI") +
theme_minimal() +
theme(legend.position = "bottom") +
guides(color = guide_legend(ncol = 2))
# Visualizza il grafico HHI come interattivo
ggplotly(p2)
# Grafico per Gini
p3 <- ggplot(df_indici, aes(x = Anno, y = Gini, color = Settore)) +
geom_line(size = 1) +
geom_point(size = 2) +
labs(title = "Serie Temporale dell'Indice di Gini per Settore",
x = "Anno", y = "Indice di Gini") +
theme_minimal() +
theme(legend.position = "bottom") +
guides(color = guide_legend(ncol = 2))
# Visualizza il grafico Gini come interattivo
ggplotly(p3)
# Definizione della funzione
calcola_lorenz_per_anno_ricavi <- function(df, nome_df) {
# Ottieni l'elenco degli anni unici
anni <- unique(df$Anno)
for (anno in anni) {
# Filtra i dati per l'anno corrente
dati_anno <- df %>% filter(Anno == anno) %>% pull(Ricavi_delle_vendite_migl_EUR)
# Traccia la curva di Lorenz per l'anno
plot(
Lc(dati_anno),
main = paste("Curva di Lorenz -", nome_df, "Anno", anno),
xlab = "Percentuale cumulativa delle imprese",
ylab = "Percentuale cumulativa dei ricavi",
col = "blue", lwd = 2
)
# Aggiungi la linea di perfetta uguaglianza
abline(0, 1, col = "red", lty = 2, lwd = 2)
}
}
# Visualizzazione di Curve di Lorenz
par(mfrow = c(2, 2)) # Dividi la finestra grafica in un layout 2x2
# Applica la funzione a ciascun dataset nella lista
lapply(names(lista_panel), function(nome) {
calcola_lorenz_per_anno_ricavi(lista_panel[[nome]], nome)
})
## [[1]]
## NULL
##
## [[2]]
## NULL
##
## [[3]]
## NULL
##
## [[4]]
## NULL
##
## [[5]]
## NULL
##
## [[6]]
## NULL
##
## [[7]]
## NULL
##
## [[8]]
## NULL
##
## [[9]]
## NULL
##
## [[10]]
## NULL
##
## [[11]]
## NULL
##
## [[12]]
## NULL
##
## [[13]]
## NULL
##
## [[14]]
## NULL
##
## [[15]]
## NULL
par(mfrow = c(1, 1))
# combiniamo le medie annuali delle variabili di performance con gli indici di
# concentrazione in un unico data frame, pronto per l’analisi statistica.
# Funzione per calcolare la media annuale delle variabili
# Elenco delle variabili su cui calcolare la media
variabili_da_calcolare <- c(
"Totale_Attività_migl_EUR", "EBITDA_Vendite", "Ricavi_delle_vendite_migl_EUR",
"EBITDA_migl_EUR", "Utile_Netto_migl_EUR", "Redditività_delle_vendite_ROS",
"Redditività_del_totale_attivo_ROA", "Redditività_del_capitale_proprio_ROE",
"Debt_Equity_ratio",
"Capitale_sociale_migl_EUR",
"TOTALE_DEBITI_migl_EUR", "Dipendenti"
)
# Definisci la funzione per calcolare le medie annuali
calcola_media_per_anno <- function(df) {
# Converte le variabili specificate in numerico
df <- df %>%
mutate(across(all_of(variabili_da_calcolare), as.numeric))
# Raggruppa per anno e calcola la media
df %>%
group_by(Anno) %>%
summarise(across(all_of(variabili_da_calcolare), mean, na.rm = TRUE)) %>%
ungroup()
}
# Applica la funzione a ciascun data frame nella lista
lista_media_per_anno <- lapply(lista_panel, calcola_media_per_anno)
## Warning: There were 3 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(all_of(variabili_da_calcolare), as.numeric)`.
## Caused by warning:
## ! NA introdotti per coercizione
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 2 remaining warnings.
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `across(all_of(variabili_da_calcolare), mean, na.rm = TRUE)`.
## ℹ In group 1: `Anno = "2015"`.
## Caused by warning:
## ! The `...` argument of `across()` is deprecated as of dplyr 1.1.0.
## Supply arguments directly to `.fns` through an anonymous function instead.
##
## # Previously
## across(a:b, mean, na.rm = TRUE)
##
## # Now
## across(a:b, \(x) mean(x, na.rm = TRUE))
## Warning: There were 3 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(all_of(variabili_da_calcolare), as.numeric)`.
## Caused by warning:
## ! NA introdotti per coercizione
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 2 remaining warnings.
## Warning: There were 5 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(all_of(variabili_da_calcolare), as.numeric)`.
## Caused by warning:
## ! NA introdotti per coercizione
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 4 remaining warnings.
## There were 5 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(all_of(variabili_da_calcolare), as.numeric)`.
## Caused by warning:
## ! NA introdotti per coercizione
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 4 remaining warnings.
## Warning: There were 4 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(all_of(variabili_da_calcolare), as.numeric)`.
## Caused by warning:
## ! NA introdotti per coercizione
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 3 remaining warnings.
## There were 4 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(all_of(variabili_da_calcolare), as.numeric)`.
## Caused by warning:
## ! NA introdotti per coercizione
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 3 remaining warnings.
## There were 4 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(all_of(variabili_da_calcolare), as.numeric)`.
## Caused by warning:
## ! NA introdotti per coercizione
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 3 remaining warnings.
## Warning: There were 3 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(all_of(variabili_da_calcolare), as.numeric)`.
## Caused by warning:
## ! NA introdotti per coercizione
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 2 remaining warnings.
## There were 3 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(all_of(variabili_da_calcolare), as.numeric)`.
## Caused by warning:
## ! NA introdotti per coercizione
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 2 remaining warnings.
## Warning: There were 4 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(all_of(variabili_da_calcolare), as.numeric)`.
## Caused by warning:
## ! NA introdotti per coercizione
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 3 remaining warnings.
## There were 4 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(all_of(variabili_da_calcolare), as.numeric)`.
## Caused by warning:
## ! NA introdotti per coercizione
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 3 remaining warnings.
## Warning: There were 5 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(all_of(variabili_da_calcolare), as.numeric)`.
## Caused by warning:
## ! NA introdotti per coercizione
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 4 remaining warnings.
## There were 5 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(all_of(variabili_da_calcolare), as.numeric)`.
## Caused by warning:
## ! NA introdotti per coercizione
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 4 remaining warnings.
## Warning: There were 3 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(all_of(variabili_da_calcolare), as.numeric)`.
## Caused by warning:
## ! NA introdotti per coercizione
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 2 remaining warnings.
## Warning: There were 4 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `across(all_of(variabili_da_calcolare), as.numeric)`.
## Caused by warning:
## ! NA introdotti per coercizione
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 3 remaining warnings.
# Combinazione dei risultati
# Combina le medie annuali in un unico data frame, aggiungendo un identificatore "NACE"
lista_panel_completo <- bind_rows(lista_media_per_anno, .id = "NACE")
# Unisce le informazioni settoriali
lista_panel_completo <- lista_panel_completo %>%
right_join(Settori, by = "NACE")
# Combina gli indici di concentrazione in un unico data frame
df_indici_ricavi <- bind_rows(lista_indici_ricavi, .id = "Name")
# Unisce le medie annuali con gli indici di concentrazione
df_final <- lista_panel_completo %>%
left_join(df_indici_ricavi, by = c("Anno", "Name"))
#View(df_final)
summary(df_final)
## NACE Anno Totale_Attività_migl_EUR
## Length:135 Length:135 Min. : 504
## Class :character Class :character 1st Qu.: 5277
## Mode :character Mode :character Median : 11963
## Mean : 574691
## 3rd Qu.: 44547
## Max. :13763787
## EBITDA_Vendite Ricavi_delle_vendite_migl_EUR EBITDA_migl_EUR
## Min. :-60.712 Min. : 589.1 Min. : -3971.9
## 1st Qu.:-10.434 1st Qu.: 3208.3 1st Qu.: 193.9
## Median : 1.449 Median : 9773.8 Median : 491.3
## Mean : -1.722 Mean : 82398.5 Mean : 18521.4
## 3rd Qu.: 7.001 3rd Qu.: 37437.4 3rd Qu.: 4042.2
## Max. : 37.337 Max. :1236199.1 Max. :264724.8
## Utile_Netto_migl_EUR Redditività_delle_vendite_ROS
## Min. :-18461.82 Min. :-9.778
## 1st Qu.: -21.65 1st Qu.: 2.380
## Median : 74.16 Median : 3.455
## Mean : 7173.68 Mean : 3.403
## 3rd Qu.: 1519.63 3rd Qu.: 4.853
## Max. :173852.34 Max. :10.603
## Redditività_del_totale_attivo_ROA Redditività_del_capitale_proprio_ROE
## Min. :-27.183 Min. :-25.318
## 1st Qu.: -6.791 1st Qu.: 3.772
## Median : -1.089 Median : 9.237
## Mean : -2.057 Mean : 8.247
## 3rd Qu.: 2.111 3rd Qu.: 14.108
## Max. : 14.042 Max. : 31.296
## Debt_Equity_ratio Capitale_sociale_migl_EUR TOTALE_DEBITI_migl_EUR
## Min. :-21.7913 Min. : 20.22 Min. : 266
## 1st Qu.: 0.5299 1st Qu.: 565.90 1st Qu.: 2612
## Median : 1.1028 Median : 1241.61 Median : 6952
## Mean : 1.0999 Mean : 17579.21 Mean : 480248
## 3rd Qu.: 1.6782 3rd Qu.: 7097.61 3rd Qu.: 29868
## Max. : 8.9253 Max. :163280.55 Max. :12697283
## Dipendenti Name Settore CR4
## Min. : 6.808 Length:135 Length:135 Min. : 7.434
## 1st Qu.: 23.146 Class :character Class :character 1st Qu.:30.830
## Median : 34.917 Mode :character Mode :character Median :74.468
## Mean : 734.377 Mean :62.237
## 3rd Qu.: 103.098 3rd Qu.:88.587
## Max. :17777.667 Max. :99.993
## HHI Gini
## Min. : 27.89 Min. :0.5795
## 1st Qu.: 352.35 1st Qu.:0.8239
## Median :1650.08 Median :0.8588
## Mean :2689.09 Mean :0.8550
## 3rd Qu.:4229.20 3rd Qu.:0.9211
## Max. :9995.52 Max. :0.9832
In questa sezione, trasformiamo alcune variabili monetarie in logaritmo naturale per normalizzare le distribuzioni ed evidenziare relazioni proporzionali nelle analisi successive.
# Calcolo del logaritmo di alcune variabili monetarie
df_final$log_Totale_Attività <- log(df_final$Totale_Attività_migl_EUR)
df_final$log_Capitale_sociale <- log(df_final$Capitale_sociale_migl_EUR)
df_final$log_TOTALE_DEBITI <- log(df_final$TOTALE_DEBITI_migl_EUR)
# Verifica delle trasformazioni
head(df_final[, c("Totale_Attività_migl_EUR", "log_Totale_Attività",
"Capitale_sociale_migl_EUR", "log_Capitale_sociale",
"TOTALE_DEBITI_migl_EUR", "log_TOTALE_DEBITI")])
## # A tibble: 6 × 6
## Totale_Attività_migl_EUR log_Totale_Attività Capitale_sociale_migl_EUR
## <dbl> <dbl> <dbl>
## 1 910732. 13.7 104868.
## 2 865574. 13.7 99260.
## 3 811943. 13.6 87046.
## 4 774091. 13.6 88665.
## 5 920701. 13.7 97974.
## 6 882997. 13.7 89191.
## # ℹ 3 more variables: log_Capitale_sociale <dbl>, TOTALE_DEBITI_migl_EUR <dbl>,
## # log_TOTALE_DEBITI <dbl>
Questa sezione calcola le statistiche descrittive per le principali variabili numeriche del dataset.
# Caricamento del pacchetto richiesto
library(dplyr)
# Seleziona solo le colonne numeriche di interesse
df_stat <- df_final %>% select(
CR4, HHI, Gini,
Redditività_delle_vendite_ROS, Redditività_del_totale_attivo_ROA, Redditività_del_capitale_proprio_ROE,
EBITDA_Vendite, Debt_Equity_ratio,
log_Totale_Attività, log_TOTALE_DEBITI, log_Capitale_sociale
)
# Calcolo delle statistiche descrittive
statistiche_descrittive <- data.frame(
Media = sapply(df_stat, function(x) round(mean(x, na.rm = TRUE), 3)),
Deviazione_Standard = sapply(df_stat, function(x) round(sd(x, na.rm = TRUE), 3)),
Minimo = sapply(df_stat, function(x) round(min(x, na.rm = TRUE), 3)),
Massimo = sapply(df_stat, function(x) round(max(x, na.rm = TRUE), 3)),
Mediana = sapply(df_stat, function(x) round(median(x, na.rm = TRUE), 3)),
Q1 = sapply(df_stat, function(x) round(quantile(x, probs = 0.25, na.rm = TRUE), 3)),
Q3 = sapply(df_stat, function(x) round(quantile(x, probs = 0.75, na.rm = TRUE), 3))
)
# Visualizza le statistiche descrittive
#print(statistiche_descrittive)
#View(statistiche_descrittive)
knitr::kable(statistiche_descrittive, caption = "Statistiche Descrittive delle Variabili Numeriche")
| Media | Deviazione_Standard | Minimo | Massimo | Mediana | Q1 | Q3 | |
|---|---|---|---|---|---|---|---|
| CR4 | 62.237 | 31.255 | 7.434 | 99.993 | 74.468 | 30.830 | 88.587 |
| HHI | 2689.086 | 2674.730 | 27.891 | 9995.524 | 1650.082 | 352.351 | 4229.205 |
| Gini | 0.855 | 0.093 | 0.579 | 0.983 | 0.859 | 0.824 | 0.921 |
| Redditività_delle_vendite_ROS | 3.403 | 2.670 | -9.778 | 10.603 | 3.455 | 2.380 | 4.853 |
| Redditività_del_totale_attivo_ROA | -2.057 | 7.088 | -27.184 | 14.042 | -1.089 | -6.791 | 2.111 |
| Redditività_del_capitale_proprio_ROE | 8.247 | 7.950 | -25.318 | 31.296 | 9.237 | 3.772 | 14.108 |
| EBITDA_Vendite | -1.722 | 17.541 | -60.712 | 37.337 | 1.449 | -10.434 | 7.001 |
| Debt_Equity_ratio | 1.100 | 2.894 | -21.791 | 8.925 | 1.103 | 0.530 | 1.678 |
| log_Totale_Attività | 10.055 | 2.468 | 6.222 | 16.438 | 9.390 | 8.571 | 10.704 |
| log_TOTALE_DEBITI | 9.544 | 2.563 | 5.582 | 16.357 | 8.847 | 7.868 | 10.305 |
| log_Capitale_sociale | 7.485 | 2.382 | 3.007 | 12.003 | 7.124 | 6.338 | 8.867 |
# write.xlsx(statistiche_descrittive, "C:/UNIVERSITA' magistrale/ANNO 2/PERIODO 2/ECONOMIA E DINAMICA INDUSTRIALE/Progetto R/Nostro lavoro/stat_des.xlsx")
Questa sezione calcola la matrice di correlazione per le variabili numeriche selezionate e ne visualizza i risultati tramite un grafico.
# Calcola la matrice di correlazione
# View(df_stat)
cor_matrix <- cor(df_stat, use = "complete.obs", method="pearson")
cor_spearman <- cor(df_stat, use = "complete.obs", method = "spearman")
# Visualizza la matrice di correlazione
print(cor_matrix)
## CR4 HHI Gini
## CR4 1.000000000 0.81150481 0.28756618
## HHI 0.811504812 1.00000000 0.35851011
## Gini 0.287566180 0.35851011 1.00000000
## Redditività_delle_vendite_ROS 0.004417363 0.05882580 -0.35713489
## Redditività_del_totale_attivo_ROA -0.058742314 -0.01891441 -0.18015527
## Redditività_del_capitale_proprio_ROE -0.315060147 -0.19391384 -0.17233780
## EBITDA_Vendite -0.143974995 -0.10430481 -0.11360843
## Debt_Equity_ratio -0.013336892 0.09592133 0.03847883
## log_Totale_Attività 0.621571711 0.81034462 0.36697238
## log_TOTALE_DEBITI 0.617876374 0.80399310 0.35618830
## log_Capitale_sociale 0.591291934 0.70310566 0.34966355
## Redditività_delle_vendite_ROS
## CR4 0.004417363
## HHI 0.058825799
## Gini -0.357134892
## Redditività_delle_vendite_ROS 1.000000000
## Redditività_del_totale_attivo_ROA 0.535411155
## Redditività_del_capitale_proprio_ROE 0.577578862
## EBITDA_Vendite 0.504366455
## Debt_Equity_ratio 0.054947195
## log_Totale_Attività 0.121414433
## log_TOTALE_DEBITI 0.108361376
## log_Capitale_sociale 0.051296926
## Redditività_del_totale_attivo_ROA
## CR4 -0.05874231
## HHI -0.01891441
## Gini -0.18015527
## Redditività_delle_vendite_ROS 0.53541116
## Redditività_del_totale_attivo_ROA 1.00000000
## Redditività_del_capitale_proprio_ROE 0.37084487
## EBITDA_Vendite 0.44133837
## Debt_Equity_ratio 0.10365642
## log_Totale_Attività 0.06380508
## log_TOTALE_DEBITI 0.05244256
## log_Capitale_sociale 0.05320432
## Redditività_del_capitale_proprio_ROE
## CR4 -0.31506015
## HHI -0.19391384
## Gini -0.17233780
## Redditività_delle_vendite_ROS 0.57757886
## Redditività_del_totale_attivo_ROA 0.37084487
## Redditività_del_capitale_proprio_ROE 1.00000000
## EBITDA_Vendite 0.38527475
## Debt_Equity_ratio 0.07914757
## log_Totale_Attività -0.19997085
## log_TOTALE_DEBITI -0.18858151
## log_Capitale_sociale -0.34556858
## EBITDA_Vendite Debt_Equity_ratio
## CR4 -0.1439749945 -0.01333689
## HHI -0.1043048078 0.09592133
## Gini -0.1136084286 0.03847883
## Redditività_delle_vendite_ROS 0.5043664551 0.05494720
## Redditività_del_totale_attivo_ROA 0.4413383662 0.10365642
## Redditività_del_capitale_proprio_ROE 0.3852747476 0.07914757
## EBITDA_Vendite 1.0000000000 0.13097965
## Debt_Equity_ratio 0.1309796450 1.00000000
## log_Totale_Attività 0.0557453434 0.10871358
## log_TOTALE_DEBITI 0.0549345243 0.11113685
## log_Capitale_sociale -0.0006203153 0.06074214
## log_Totale_Attività log_TOTALE_DEBITI
## CR4 0.62157171 0.61787637
## HHI 0.81034462 0.80399310
## Gini 0.36697238 0.35618830
## Redditività_delle_vendite_ROS 0.12141443 0.10836138
## Redditività_del_totale_attivo_ROA 0.06380508 0.05244256
## Redditività_del_capitale_proprio_ROE -0.19997085 -0.18858151
## EBITDA_Vendite 0.05574534 0.05493452
## Debt_Equity_ratio 0.10871358 0.11113685
## log_Totale_Attività 1.00000000 0.99635088
## log_TOTALE_DEBITI 0.99635088 1.00000000
## log_Capitale_sociale 0.95253192 0.94321817
## log_Capitale_sociale
## CR4 0.5912919335
## HHI 0.7031056606
## Gini 0.3496635537
## Redditività_delle_vendite_ROS 0.0512969263
## Redditività_del_totale_attivo_ROA 0.0532043188
## Redditività_del_capitale_proprio_ROE -0.3455685812
## EBITDA_Vendite -0.0006203153
## Debt_Equity_ratio 0.0607421419
## log_Totale_Attività 0.9525319177
## log_TOTALE_DEBITI 0.9432181661
## log_Capitale_sociale 1.0000000000
print(cor_spearman)
## CR4 HHI Gini
## CR4 1.00000000 0.96939323 0.33744513
## HHI 0.96939323 1.00000000 0.36841284
## Gini 0.33744513 0.36841284 1.00000000
## Redditività_delle_vendite_ROS 0.10456541 0.06174032 -0.35042435
## Redditività_del_totale_attivo_ROA 0.04859526 -0.02706565 -0.29984880
## Redditività_del_capitale_proprio_ROE -0.26711053 -0.33438201 -0.07280753
## EBITDA_Vendite -0.05443371 -0.14942932 -0.24822944
## Debt_Equity_ratio -0.16181836 -0.10159984 0.07592918
## log_Totale_Attività 0.72110038 0.73189445 0.23133353
## log_TOTALE_DEBITI 0.71255487 0.71374012 0.21439372
## log_Capitale_sociale 0.72022037 0.72370786 0.18165190
## Redditività_delle_vendite_ROS
## CR4 0.10456541
## HHI 0.06174032
## Gini -0.35042435
## Redditività_delle_vendite_ROS 1.00000000
## Redditività_del_totale_attivo_ROA 0.60748707
## Redditività_del_capitale_proprio_ROE 0.42523168
## EBITDA_Vendite 0.51272559
## Debt_Equity_ratio -0.14590284
## log_Totale_Attività 0.04555165
## log_TOTALE_DEBITI 0.02975807
## log_Capitale_sociale 0.01885683
## Redditività_del_totale_attivo_ROA
## CR4 0.04859526
## HHI -0.02706565
## Gini -0.29984880
## Redditività_delle_vendite_ROS 0.60748707
## Redditività_del_totale_attivo_ROA 1.00000000
## Redditività_del_capitale_proprio_ROE 0.39420057
## EBITDA_Vendite 0.53876207
## Debt_Equity_ratio -0.07689006
## log_Totale_Attività -0.01735440
## log_TOTALE_DEBITI -0.03309433
## log_Capitale_sociale -0.03366038
## Redditività_del_capitale_proprio_ROE
## CR4 -0.26711053
## HHI -0.33438201
## Gini -0.07280753
## Redditività_delle_vendite_ROS 0.42523168
## Redditività_del_totale_attivo_ROA 0.39420057
## Redditività_del_capitale_proprio_ROE 1.00000000
## EBITDA_Vendite 0.38195298
## Debt_Equity_ratio 0.04313725
## log_Totale_Attività -0.32213443
## log_TOTALE_DEBITI -0.31850551
## log_Capitale_sociale -0.42088641
## EBITDA_Vendite Debt_Equity_ratio
## CR4 -0.054433714 -0.16181836
## HHI -0.149429324 -0.10159984
## Gini -0.248229441 0.07592918
## Redditività_delle_vendite_ROS 0.512725588 -0.14590284
## Redditività_del_totale_attivo_ROA 0.538762072 -0.07689006
## Redditività_del_capitale_proprio_ROE 0.381952980 0.04313725
## EBITDA_Vendite 1.000000000 -0.04806848
## Debt_Equity_ratio -0.048068481 1.00000000
## log_Totale_Attività -0.010140474 -0.07006146
## log_TOTALE_DEBITI -0.003053361 -0.06347186
## log_Capitale_sociale -0.026885379 -0.12322303
## log_Totale_Attività log_TOTALE_DEBITI
## CR4 0.72110038 0.712554873
## HHI 0.73189445 0.713740123
## Gini 0.23133353 0.214393718
## Redditività_delle_vendite_ROS 0.04555165 0.029758072
## Redditività_del_totale_attivo_ROA -0.01735440 -0.033094332
## Redditività_del_capitale_proprio_ROE -0.32213443 -0.318505512
## EBITDA_Vendite -0.01014047 -0.003053361
## Debt_Equity_ratio -0.07006146 -0.063471856
## log_Totale_Attività 1.00000000 0.991766657
## log_TOTALE_DEBITI 0.99176666 1.000000000
## log_Capitale_sociale 0.96601526 0.960808415
## log_Capitale_sociale
## CR4 0.72022037
## HHI 0.72370786
## Gini 0.18165190
## Redditività_delle_vendite_ROS 0.01885683
## Redditività_del_totale_attivo_ROA -0.03366038
## Redditività_del_capitale_proprio_ROE -0.42088641
## EBITDA_Vendite -0.02688538
## Debt_Equity_ratio -0.12322303
## log_Totale_Attività 0.96601526
## log_TOTALE_DEBITI 0.96080841
## log_Capitale_sociale 1.00000000
# Grafico della Matrice di Correlazione
# Carica il pacchetto necessario
library(corrplot)
## corrplot 0.92 loaded
new_names <- c("CR4", "HHI", "Gini", "ROS", "ROA",
"ROE", "EBITDA", "Debt_Equity", "log_Tot_Att", "log_Tot_Debt", "log_Cap_Soc")
colnames(cor_matrix) <- new_names
rownames(cor_matrix) <- new_names
# Genera il grafico di correlazione
corrplot::corrplot(cor_matrix, method = "color", type = "upper",
tl.col = "black", tl.srt = 60, # Colore e orientamento delle etichette
tl.cex = 0.7, # Dimensione etichette
number.cex = 0.7, # Dimensione numeri
addCoef.col = "black", mar = c(0, 0, 0, 0)) # Mostra i coefficienti di correlazione
colnames(cor_spearman) <- new_names
rownames(cor_spearman) <- new_names
corrplot::corrplot(cor_spearman, method = "color", type = "upper",
tl.col = "black", tl.srt = 60, # Colore e orientamento delle etichette
tl.cex = 0.7, # Dimensione etichette
number.cex = 0.7, # Dimensione numeri
addCoef.col = "black", mar = c(0, 0, 0, 0)) # Mostra i coefficienti di correlazione
In questa sezione, creiamo un dataset in formato panel, selezionando solo le variabili rilevanti per l’analisi delle performance aziendali e degli indici di concentrazione.
# Seleziona le variabili rilevanti per l'analisi
df_panel_data <- df_final %>% select(
Anno, NACE, Settore, Dipendenti, CR4, HHI, Gini,
Redditività_delle_vendite_ROS, Redditività_del_totale_attivo_ROA, Redditività_del_capitale_proprio_ROE,
EBITDA_Vendite, Debt_Equity_ratio,
log_Totale_Attività, log_TOTALE_DEBITI, log_Capitale_sociale
)
# View(df_panel_data)
In questa sezione, creiamo grafici delle serie temporali per quattro variabili di performance aziendale, suddivise per settore, e li rendiamo interattivi con plotly.
# Prepara il dataset
df_performace <- df_panel_data %>%
mutate(Anno = as.Date(paste0(Anno, "-01-01")))
# Lista delle variabili di performance
performance_vars <- c("Redditività_delle_vendite_ROS", "Redditività_del_capitale_proprio_ROE",
"Redditività_del_totale_attivo_ROA", "EBITDA_Vendite")
# Crea una lista per salvare i grafici
plots <- list()
# Ciclo per generare un grafico per ogni variabile di performance
for (var in performance_vars) {
p <- ggplot(df_performace, aes(x = Anno, y = .data[[var]], color = Settore)) +
geom_line(size = 1) +
geom_point(size = 2) +
labs(title = paste("Serie Temporale di", var, "per Settore"),
x = "Anno", y = var) +
theme_minimal() +
theme(legend.position = "bottom") +
guides(color = guide_legend(ncol = 2)) # Organizza la legenda in 2 colonne
# Converte in grafico interattivo e salva nella lista
plots[[var]] <- ggplotly(p)
}
# Visualizza i grafici
plots$Redditività_delle_vendite_ROS # Visualizza il grafico di una variabile
plots$Redditività_del_capitale_proprio_ROE
plots$Redditività_del_totale_attivo_ROA
plots$EBITDA_Vendite
Questa sezione esplora la relazione tra gli indici di concentrazione e le variabili di performance aziendale tramite un grafico a griglia con regressioni lineari.
# Caricamento del pacchetto necessario
library(tidyr)
library(ggplot2)
# Trasformazione in formato long
colnames(df_panel_data) <- gsub("Redditività_delle_vendite_ROS", "ROS", colnames(df_panel_data))
colnames(df_panel_data) <- gsub("Redditività_del_capitale_proprio_ROE", "ROE", colnames(df_panel_data))
colnames(df_panel_data) <- gsub("Redditività_del_totale_attivo_ROA", "ROA", colnames(df_panel_data))
df_long <- df_panel_data %>%
pivot_longer(cols = c("ROS", "ROE",
"ROA", "EBITDA_Vendite"),
names_to = "Performance", values_to = "ValorePerformance") %>%
pivot_longer(cols = c("CR4", "HHI", "Gini"),
names_to = "Indice", values_to = "ValoreIndice")
#View(df_long)
# Creazione del grafico con facet_grid
p <- ggplot(df_long, aes(x = ValoreIndice, y = ValorePerformance)) +
geom_point(alpha = 0.6) + # Punti con trasparenza per evidenziare densità
geom_smooth(method = "lm", color = "blue", se = TRUE) + # Aggiunge retta di regressione
labs(title = "Relazione tra Indici e Variabili di Performance Aziendale",
x = "Valore Indice",
y = "Valore Performance") +
theme_minimal() +
facet_grid(Performance ~ Indice, scales = "free") # Crea una griglia con righe e colonne
# Visualizza il grafico
print(p)
## `geom_smooth()` using formula = 'y ~ x'
colnames(df_panel_data) <- gsub("ROS", "Redditività_delle_vendite_ROS", colnames(df_panel_data))
colnames(df_panel_data) <- gsub("ROE", "Redditività_del_capitale_proprio_ROE", colnames(df_panel_data))
colnames(df_panel_data) <- gsub("ROA","Redditività_del_totale_attivo_ROA", colnames(df_panel_data))
Questa sezione implementa un’analisi panel data per esplorare la relazione tra gli indici di concentrazione e le variabili di performance aziendale, con e senza variabili di controllo.
# Caricamento dei pacchetti richiesti
library(plm)
## Warning: il pacchetto 'plm' è stato creato con R versione 4.4.2
##
## Caricamento pacchetto: 'plm'
## I seguenti oggetti sono mascherati da 'package:dplyr':
##
## between, lag, lead
library(lmtest)
## Warning: il pacchetto 'lmtest' è stato creato con R versione 4.4.2
## Caricamento del pacchetto richiesto: zoo
##
## Caricamento pacchetto: 'zoo'
## I seguenti oggetti sono mascherati da 'package:base':
##
## as.Date, as.Date.numeric
library(car)
## Warning: il pacchetto 'car' è stato creato con R versione 4.4.2
## Caricamento del pacchetto richiesto: carData
##
## Caricamento pacchetto: 'car'
## Il seguente oggetto è mascherato da 'package:dplyr':
##
## recode
library(stargazer)
##
## Please cite as:
## Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
## R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
library(readxl)
# Trasformazione delle colonne 'Anno' e 'NACE' in fattori
df_panel_data$Anno <- as.factor(df_panel_data$Anno)
df_panel_data$NACE <- as.factor(df_panel_data$NACE)
# Liste delle variabili di performance e degli indici
performance_vars <- c("Redditività_delle_vendite_ROS", "Redditività_del_capitale_proprio_ROE",
"Redditività_del_totale_attivo_ROA", "EBITDA_Vendite")
indici_vars <- c("CR4", "HHI", "Gini")
# Liste per raccogliere i modelli
modelli_senza_controllo <- list()
modelli_con_controllo <- list()
# Loop per costruire i modelli
for (perf_var in performance_vars) {
for (indice_var in indici_vars) {
# Formula del modello
formula_senza <- as.formula(paste(perf_var, "~", indice_var))
# Modello panel 'within' senza variabili di controllo
model_senza <- plm(formula_senza, data = df_panel_data, index = c("NACE", "Anno"), model = "within")
# Salva il modello nella lista
modelli_senza_controllo[[paste(perf_var, indice_var, sep = "_")]] <- model_senza
}
}
# Loop per costruire i modelli
for (perf_var in performance_vars) {
for (indice_var in indici_vars) {
# Formula del modello
formula_con <- as.formula(paste(perf_var, "~", indice_var, "+ Debt_Equity_ratio + log_Totale_Attività + log_TOTALE_DEBITI + log_Capitale_sociale"))
# Modello panel 'within' con variabili di controllo
model_con <- plm(formula_con, data = df_panel_data, index = c("NACE", "Anno"), model = "within")
# Salva il modello nella lista
modelli_con_controllo[[paste(perf_var, indice_var, sep = "_")]] <- model_con
}
}
# Visualizzazione dei risultati
# Visualizza i risultati dei modelli senza variabili di controllo
stargazer(modelli_senza_controllo, type = "text", title = "Risultati dei Modelli senza Variabili di Controllo")
##
## Risultati dei Modelli senza Variabili di Controllo
## ====================================================================================================================================================
## Dependent variable:
## --------------------------------------------------------------------------------------------------------------------------
## Redditività_delle_vendite_ROS Redditività_del_capitale_proprio_ROE Redditività_del_totale_attivo_ROA EBITDA_Vendite
## (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)
## ----------------------------------------------------------------------------------------------------------------------------------------------------
## CR4 -0.027 -0.239* 0.098 0.358
## (0.044) (0.122) (0.112) (0.278)
##
## HHI -0.00003 -0.001 0.001 0.0004
## (0.0003) (0.001) (0.001) (0.002)
##
## Gini -22.420** -56.329** -16.105 -116.856*
## (9.692) (27.422) (25.362) (62.376)
##
## ----------------------------------------------------------------------------------------------------------------------------------------------------
## Observations 135 135 135 135 135 135 135 135 135 135 135 135
## R2 0.003 0.0001 0.043 0.031 0.018 0.034 0.006 0.008 0.003 0.014 0.0003 0.029
## Adjusted R2 -0.123 -0.126 -0.078 -0.091 -0.105 -0.087 -0.119 -0.117 -0.122 -0.111 -0.126 -0.094
## F Statistic (df = 1; 119) 0.373 0.008 5.351** 3.849* 2.214 4.219** 0.769 0.962 0.403 1.655 0.039 3.510*
## ====================================================================================================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
# Visualizza i risultati dei modelli con variabili di controllo
stargazer(modelli_con_controllo, type = "text", title = "Risultati dei Modelli con Variabili di Controllo")
##
## Risultati dei Modelli con Variabili di Controllo
## ====================================================================================================================================================
## Dependent variable:
## --------------------------------------------------------------------------------------------------------------------------
## Redditività_delle_vendite_ROS Redditività_del_capitale_proprio_ROE Redditività_del_totale_attivo_ROA EBITDA_Vendite
## (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)
## ----------------------------------------------------------------------------------------------------------------------------------------------------
## CR4 -0.030 -0.235* -0.016 0.252
## (0.047) (0.133) (0.117) (0.302)
##
## HHI -0.0003 -0.002* -0.001 -0.001
## (0.0003) (0.001) (0.001) (0.002)
##
## Gini -26.817*** -64.791** -46.190* -163.514**
## (10.075) (28.810) (25.274) (64.464)
##
## Debt_Equity_ratio -0.007 -0.011 -0.012 0.059 0.009 -0.015 0.335* 0.340* 0.339* 0.625 0.745 0.754
## (0.076) (0.074) (0.072) (0.212) (0.207) (0.205) (0.187) (0.183) (0.180) (0.483) (0.472) (0.458)
##
## log_Totale_Attività 3.164** 3.683** 3.479** 2.816 5.625 3.551 4.064 4.949 4.613 4.153 6.220 6.151
## (1.414) (1.512) (1.380) (3.963) (4.241) (3.946) (3.498) (3.742) (3.462) (9.011) (9.672) (8.830)
##
## log_TOTALE_DEBITI -2.610* -2.892** -2.485* 0.500 -1.104 0.642 1.670 1.226 1.919 3.960 3.230 5.145
## (1.348) (1.370) (1.312) (3.780) (3.842) (3.750) (3.336) (3.391) (3.290) (8.594) (8.764) (8.391)
##
## log_Capitale_sociale -0.122 -0.177 -0.188 -2.857 -3.351* -3.462* -1.789 -1.787 -1.806 -5.624 -4.822 -4.827
## (0.700) (0.686) (0.668) (1.961) (1.925) (1.911) (1.731) (1.699) (1.677) (4.459) (4.392) (4.276)
##
## ----------------------------------------------------------------------------------------------------------------------------------------------------
## Observations 135 135 135 135 135 135 135 135 135 135 135 135
## R2 0.046 0.050 0.098 0.055 0.058 0.071 0.112 0.115 0.137 0.051 0.048 0.095
## Adjusted R2 -0.112 -0.107 -0.051 -0.101 -0.097 -0.083 -0.035 -0.031 -0.006 -0.106 -0.110 -0.054
## F Statistic (df = 5; 115) 1.107 1.218 2.503** 1.345 1.422 1.746 2.904** 2.998** 3.652*** 1.224 1.149 2.425**
## ====================================================================================================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
Questa sezione utilizza una funzione personalizzata per eseguire modelli panel data e condurre test diagnostici, tra cui Hausman, Breusch-Pagan e Wooldridge, per valutare la validità dei modelli.
# Caricamento dei pacchetti richiesti
library(plm)
library(lmtest)
library(car)
# Definisci le variabili di performance, gli indici e le variabili di controllo
performance_vars <- c("Redditività_delle_vendite_ROS", "Redditività_del_capitale_proprio_ROE", "Redditività_del_totale_attivo_ROA", "EBITDA_Vendite")
indices <- c("CR4", "HHI", "Gini")
control_vars <- c("Debt_Equity_ratio", "log_Totale_Attività", "log_TOTALE_DEBITI", "log_Capitale_sociale")
# Funzione per eseguire i modelli e i test
run_panel_tests <- function(dep_var, indep_var, controls = NULL) {
# Definisci le formule per i due modelli
if (is.null(controls)) {
formula <- as.formula(paste(dep_var, "~", indep_var))
} else {
formula <- as.formula(paste(dep_var, "~", indep_var, "+", paste(controls, collapse = " + ")))
}
# Modello a effetti fissi
fixed_model <- plm(formula, data = df_panel_data, model = "within")
# Modello a effetti casuali
random_model <- plm(formula, data = df_panel_data, model = "random")
# Test di Hausman
hausman_test <- tryCatch(phtest(fixed_model, random_model), error = function(e) NA)
# Modello OLS per il test di Breusch-Pagan
ols_model <- plm(formula, data = df_panel_data, model = "pooling")
# Test di Breusch-Pagan per gli effetti casuali
bp_effects_test <- tryCatch(plmtest(ols_model, type = "bp"), error = function(e) NA)
# Test di Wooldridge per autocorrelazione
wooldridge_test <- tryCatch(pbgtest(fixed_model), error = function(e) NA)
# Test di Breusch-Pagan per eteroschedasticità
bp_hetero_test <- tryCatch(bptest(fixed_model), error = function(e) NA)
# Ritorna i risultati
list(
Hausman_Test = hausman_test,
BP_Effects_Test = bp_effects_test,
Wooldridge_Test = wooldridge_test,
BP_Hetero_Test = bp_hetero_test
)
}
Questa sezione presenta i risultati dei test diagnostici sui modelli panel per diverse combinazioni di variabili di performance e indici di concentrazione.
# Caricamento dei pacchetti
library(plm)
library(lmtest)
library(car)
library(kableExtra)
## Warning: il pacchetto 'kableExtra' è stato creato con R versione 4.4.2
##
## Caricamento pacchetto: 'kableExtra'
## Il seguente oggetto è mascherato da 'package:dplyr':
##
## group_rows
# Variabili di performance, indici e variabili di controllo
performance_vars <- c("Redditività_delle_vendite_ROS", "Redditività_del_capitale_proprio_ROE", "Redditività_del_totale_attivo_ROA", "EBITDA_Vendite")
indices <- c("CR4", "HHI", "Gini")
control_vars <- c("Debt_Equity_ratio", "log_Totale_Attività", "log_TOTALE_DEBITI", "log_Capitale_sociale")
# Esegui i modelli e i test per ogni combinazione
results <- list()
for (dep_var in performance_vars) {
for (indep_var in indices) {
# Modello con solo indice
no_controls <- run_panel_tests(dep_var, indep_var)
# Modello con indice + variabili di controllo
with_controls <- run_panel_tests(dep_var, indep_var, control_vars)
# Salva i risultati
results[[paste(dep_var, indep_var, "No_Controls")]] <- no_controls
results[[paste(dep_var, indep_var, "With_Controls")]] <- with_controls
}
}
res0 = results
nomi_righe = names(res0)
nomi_colonne = names(res0[[1]])
nomi_righe = nomi_righe %>%
{gsub('Redditività_delle_vendite_ROS','ROS',.)} %>%
{gsub('Redditività_del_capitale_proprio_ROE','ROE',.)} %>%
{gsub('Redditività_del_capitale_proprio_ROE','ROE',.)} %>%
{gsub('Redditività_del_totale_attivo_ROA','ROA',.)} %>%
{gsub('EBITDA_Vendite','EBITDA',.)} %>%
{gsub('No_Controls','noctrl',.)} %>%
{gsub('With_Controls','ctrl',.)}
nomi_righe
## [1] "ROS CR4 noctrl" "ROS CR4 ctrl" "ROS HHI noctrl"
## [4] "ROS HHI ctrl" "ROS Gini noctrl" "ROS Gini ctrl"
## [7] "ROE CR4 noctrl" "ROE CR4 ctrl" "ROE HHI noctrl"
## [10] "ROE HHI ctrl" "ROE Gini noctrl" "ROE Gini ctrl"
## [13] "ROA CR4 noctrl" "ROA CR4 ctrl" "ROA HHI noctrl"
## [16] "ROA HHI ctrl" "ROA Gini noctrl" "ROA Gini ctrl"
## [19] "EBITDA CR4 noctrl" "EBITDA CR4 ctrl" "EBITDA HHI noctrl"
## [22] "EBITDA HHI ctrl" "EBITDA Gini noctrl" "EBITDA Gini ctrl"
nr = length(nomi_righe)
nc = length(nomi_colonne)
tabPV = matrix(NA, nrow=nr, ncol=nc)
tabTest = matrix(NA, nrow=nr, ncol=nc)
rownames(tabPV) = rownames(tabTest) = nomi_righe
colnames(tabPV) = colnames(tabTest) = nomi_colonne
for (r in 1:nr){
for (c in 1:nc){
row = res0[[r]]
cell = row[[c]]
pval = cell$p.value
test = cell$statistic
tabPV[r,c] = pval
tabTest[r,c] = test
}
}
library(pheatmap)
## Warning: il pacchetto 'pheatmap' è stato creato con R versione 4.4.2
pheatmap(tabPV,
color = colorRampPalette(c("white",
"red"))(50),
cluster_rows = FALSE,
cluster_cols = FALSE,
display_numbers = TRUE,
fontsize_number = 10,
angle_col = 0,
number_format = "%.4f",
main = "p-value dei test su tutti i modelli provati")
library(pheatmap)
daTenere = c('ROS CR4 ctrl',
'ROS HHI ctrl',
'ROS Gini ctrl',
'ROS Gini noctrl',
'ROE Gini ctrl',
'ROE Gini noctrl',
'EBITDA Gini ctrl'
)
pheatmap(tabPV[daTenere,],
color = colorRampPalette(c("white",
#"lightblue",
#"lightgreen",
#"yellow",
"red"))(50),
cluster_rows = FALSE,
cluster_cols = FALSE,
display_numbers = TRUE,
fontsize_number = 10,
angle_col = 0,
number_format = "%.4f",
main='p-value dei test sui modelli con almeno un coefficiente significativo al 5%')
# Crea il dataframe dei risultati
results <- data.frame(
Modello = rep(c(
"Redditività delle vendite ROS CR4 (No Controls)",
"Redditività delle vendite ROS CR4 (With Controls)",
"Redditività delle vendite ROS HHI (No Controls)",
"Redditività delle vendite ROS HHI (With Controls)",
"Redditività delle vendite ROS GINI (No Controls)",
"Redditività delle vendite ROS GINI (With Controls)",
"Redditività del capitale proprio ROE CR4 (No Controls)",
"Redditività del capitale proprio ROE CR4 (With Controls)",
"Redditività del capitale proprio ROE HHI (No Controls)",
"Redditività del capitale proprio ROE HHI (With Controls)",
"Redditività del capitale proprio ROE GINI (No Controls)",
"Redditività del capitale proprio ROE GINI (With Controls)",
"Redditività del totale attivo ROA CR4 (No Controls)",
"Redditività del totale attivo ROA CR4 (With Controls)",
"Redditività del totale attivo ROA HHI (No Controls)",
"Redditività del totale attivo ROA HHI (With Controls)",
"Redditività del totale attivo ROA GINI (No Controls)",
"Redditività del totale attivo ROA GINI (With Controls)",
"EBITDA Vendite CR4 (No Controls)",
"EBITDA Vendite CR4 (With Controls)",
"EBITDA Vendite HHI (No Controls)",
"EBITDA Vendite HHI (With Controls)",
"EBITDA Vendite GINI (No Controls)",
"EBITDA Vendite GINI (With Controls)"
), each = 4),
Test = rep(c("Hausman Test", "BP Effects Test", "Wooldridge Test", "BP Hetero Test"), times = 24),
Valore = c(
0.001, 10.718, 56.914, 3.160,
4.938, 8.307, 53.307, 6.729,
0.029, 10.755, 57.170, 0.484,
2.377, 8.538, 49.798, 6.117,
0.207, 13.689, 48.019, 1.516,
1.819, 12.056, 37.902, 3.781,
0.031, 0.506, 45.960, 6.380,
26.940, 0.995, 23.006, 8.445,
0.033, 0.361, 50.037, 3.947,
9.563, 0.640, 24.463, 7.637,
0.804, 0.221, 50.879, 0.023,
12.634, 0.508, 30.730, 2.648,
0.009, 1.115, 45.952, 9.319,
10.068, 0.217, 44.301, 14.008,
0.020, 1.110, 45.281, 11.089,
4.827, 0.072, 44.685, 12.738,
0.431, 1.059, 43.273, 1.250,
5.408, 0.128, 39.004, 11.870,
0.053, 3.141, 44.626, 14.738,
46.053, 2.502, 38.778, 29.818,
0.328, 3.031, 46.804, 7.206,
26.918, 3.916, 32.270, 20.382,
0.348, 2.646, 46.667, 0.023,
6.319, 1.531, 42.519, 25.926
),
p_value = c(
0.969, 0.001, 0.000, 0.075,
0.424, 0.004, 0.000, 0.242,
0.865, 0.001, 0.000, 0.487,
0.795, 0.003, 0.000, 0.295,
0.649, 0.000, 0.000, 0.218,
0.874, 0.001, 0.001, 0.581,
0.859, 0.477, 0.000, 0.012,
0.000, 0.318, 0.084, 0.133,
0.857, 0.548, 0.000, 0.047,
0.089, 0.424, 0.058, 0.178,
0.370, 0.638, 0.000, 0.879,
0.027, 0.476, 0.010, 0.754,
0.926, 0.291, 0.000, 0.002,
0.073, 0.642, 0.000, 0.016,
0.887, 0.292, 0.000, 0.001,
0.437, 0.788, 0.000, 0.026,
0.511, 0.303, 0.000, 0.264,
0.368, 0.720, 0.001, 0.037,
0.817, 0.076, 0.000, 0.000,
0.000, 0.114, 0.001, 0.000,
0.567, 0.082, 0.000, 0.007,
0.000, 0.048, 0.006, 0.001,
0.555, 0.104, 0.000, 0.879,
0.276, 0.216, 0.000, 0.000
)
)
#View(results)
Risultati <- data.frame(nrow="")
results1 <- cbind(results, Risultati)
colnames(results1) <- gsub("nrow", "Risultati", colnames(results1))
#View(results1)
for(i in 1:96){
if(results1$Test[i] == "Hausman Test"){
if(results1$p_value[i]<0.05){
results1$Risultati[i]="Modelli a effetti fissi preferibile"
}else if(results1$p_value[i]>=0.05){
results1$Risultati[i]="Modelli a effetti casuali preferibile"
}
}else if(results1$Test[i] == "BP Effects Test"){
if(results1$p_value[i]<0.05){
results1$Risultati[i]="Effetti non significativi, OLS potrebbe essere adeguato"
}else if(results1$p_value[i]>=0.05){
results1$Risultati[i]="Effetti significativi, panel raccomandato"
}
}else if(results1$Test[i] == "Wooldridge Test"){
if(results1$p_value[i]<0.05){
results1$Risultati[i]="Presenza di autocorrelazione"
}else if(results1$p_value[i]>=0.05){
results1$Risultati[i]="Assenza di autocorrelazione"
}
}else if(results1$Test[i] == "BP Hetero Test"){
if(results1$p_value[i]<0.05){
results1$Risultati[i]="Presenza di eteroschedasticità"
}else if(results1$p_value[i]>=0.05){
results1$Risultati[i]="Assenza di eteroschedasticità"
}
}
}
# Stampa la tabella con Kable
knitr::kable(results1, format = "html", caption = "Risultati dei Test per Modelli Panel Completi") %>%
kable_styling(full_width = F)
| Modello | Test | Valore | p_value | Risultati |
|---|---|---|---|---|
| Redditività delle vendite ROS CR4 (No Controls) | Hausman Test | 0.001 | 0.969 | Modelli a effetti casuali preferibile |
| Redditività delle vendite ROS CR4 (No Controls) | BP Effects Test | 10.718 | 0.001 | Effetti non significativi, OLS potrebbe essere adeguato |
| Redditività delle vendite ROS CR4 (No Controls) | Wooldridge Test | 56.914 | 0.000 | Presenza di autocorrelazione |
| Redditività delle vendite ROS CR4 (No Controls) | BP Hetero Test | 3.160 | 0.075 | Assenza di eteroschedasticità |
| Redditività delle vendite ROS CR4 (With Controls) | Hausman Test | 4.938 | 0.424 | Modelli a effetti casuali preferibile |
| Redditività delle vendite ROS CR4 (With Controls) | BP Effects Test | 8.307 | 0.004 | Effetti non significativi, OLS potrebbe essere adeguato |
| Redditività delle vendite ROS CR4 (With Controls) | Wooldridge Test | 53.307 | 0.000 | Presenza di autocorrelazione |
| Redditività delle vendite ROS CR4 (With Controls) | BP Hetero Test | 6.729 | 0.242 | Assenza di eteroschedasticità |
| Redditività delle vendite ROS HHI (No Controls) | Hausman Test | 0.029 | 0.865 | Modelli a effetti casuali preferibile |
| Redditività delle vendite ROS HHI (No Controls) | BP Effects Test | 10.755 | 0.001 | Effetti non significativi, OLS potrebbe essere adeguato |
| Redditività delle vendite ROS HHI (No Controls) | Wooldridge Test | 57.170 | 0.000 | Presenza di autocorrelazione |
| Redditività delle vendite ROS HHI (No Controls) | BP Hetero Test | 0.484 | 0.487 | Assenza di eteroschedasticità |
| Redditività delle vendite ROS HHI (With Controls) | Hausman Test | 2.377 | 0.795 | Modelli a effetti casuali preferibile |
| Redditività delle vendite ROS HHI (With Controls) | BP Effects Test | 8.538 | 0.003 | Effetti non significativi, OLS potrebbe essere adeguato |
| Redditività delle vendite ROS HHI (With Controls) | Wooldridge Test | 49.798 | 0.000 | Presenza di autocorrelazione |
| Redditività delle vendite ROS HHI (With Controls) | BP Hetero Test | 6.117 | 0.295 | Assenza di eteroschedasticità |
| Redditività delle vendite ROS GINI (No Controls) | Hausman Test | 0.207 | 0.649 | Modelli a effetti casuali preferibile |
| Redditività delle vendite ROS GINI (No Controls) | BP Effects Test | 13.689 | 0.000 | Effetti non significativi, OLS potrebbe essere adeguato |
| Redditività delle vendite ROS GINI (No Controls) | Wooldridge Test | 48.019 | 0.000 | Presenza di autocorrelazione |
| Redditività delle vendite ROS GINI (No Controls) | BP Hetero Test | 1.516 | 0.218 | Assenza di eteroschedasticità |
| Redditività delle vendite ROS GINI (With Controls) | Hausman Test | 1.819 | 0.874 | Modelli a effetti casuali preferibile |
| Redditività delle vendite ROS GINI (With Controls) | BP Effects Test | 12.056 | 0.001 | Effetti non significativi, OLS potrebbe essere adeguato |
| Redditività delle vendite ROS GINI (With Controls) | Wooldridge Test | 37.902 | 0.001 | Presenza di autocorrelazione |
| Redditività delle vendite ROS GINI (With Controls) | BP Hetero Test | 3.781 | 0.581 | Assenza di eteroschedasticità |
| Redditività del capitale proprio ROE CR4 (No Controls) | Hausman Test | 0.031 | 0.859 | Modelli a effetti casuali preferibile |
| Redditività del capitale proprio ROE CR4 (No Controls) | BP Effects Test | 0.506 | 0.477 | Effetti significativi, panel raccomandato |
| Redditività del capitale proprio ROE CR4 (No Controls) | Wooldridge Test | 45.960 | 0.000 | Presenza di autocorrelazione |
| Redditività del capitale proprio ROE CR4 (No Controls) | BP Hetero Test | 6.380 | 0.012 | Presenza di eteroschedasticità |
| Redditività del capitale proprio ROE CR4 (With Controls) | Hausman Test | 26.940 | 0.000 | Modelli a effetti fissi preferibile |
| Redditività del capitale proprio ROE CR4 (With Controls) | BP Effects Test | 0.995 | 0.318 | Effetti significativi, panel raccomandato |
| Redditività del capitale proprio ROE CR4 (With Controls) | Wooldridge Test | 23.006 | 0.084 | Assenza di autocorrelazione |
| Redditività del capitale proprio ROE CR4 (With Controls) | BP Hetero Test | 8.445 | 0.133 | Assenza di eteroschedasticità |
| Redditività del capitale proprio ROE HHI (No Controls) | Hausman Test | 0.033 | 0.857 | Modelli a effetti casuali preferibile |
| Redditività del capitale proprio ROE HHI (No Controls) | BP Effects Test | 0.361 | 0.548 | Effetti significativi, panel raccomandato |
| Redditività del capitale proprio ROE HHI (No Controls) | Wooldridge Test | 50.037 | 0.000 | Presenza di autocorrelazione |
| Redditività del capitale proprio ROE HHI (No Controls) | BP Hetero Test | 3.947 | 0.047 | Presenza di eteroschedasticità |
| Redditività del capitale proprio ROE HHI (With Controls) | Hausman Test | 9.563 | 0.089 | Modelli a effetti casuali preferibile |
| Redditività del capitale proprio ROE HHI (With Controls) | BP Effects Test | 0.640 | 0.424 | Effetti significativi, panel raccomandato |
| Redditività del capitale proprio ROE HHI (With Controls) | Wooldridge Test | 24.463 | 0.058 | Assenza di autocorrelazione |
| Redditività del capitale proprio ROE HHI (With Controls) | BP Hetero Test | 7.637 | 0.178 | Assenza di eteroschedasticità |
| Redditività del capitale proprio ROE GINI (No Controls) | Hausman Test | 0.804 | 0.370 | Modelli a effetti casuali preferibile |
| Redditività del capitale proprio ROE GINI (No Controls) | BP Effects Test | 0.221 | 0.638 | Effetti significativi, panel raccomandato |
| Redditività del capitale proprio ROE GINI (No Controls) | Wooldridge Test | 50.879 | 0.000 | Presenza di autocorrelazione |
| Redditività del capitale proprio ROE GINI (No Controls) | BP Hetero Test | 0.023 | 0.879 | Assenza di eteroschedasticità |
| Redditività del capitale proprio ROE GINI (With Controls) | Hausman Test | 12.634 | 0.027 | Modelli a effetti fissi preferibile |
| Redditività del capitale proprio ROE GINI (With Controls) | BP Effects Test | 0.508 | 0.476 | Effetti significativi, panel raccomandato |
| Redditività del capitale proprio ROE GINI (With Controls) | Wooldridge Test | 30.730 | 0.010 | Presenza di autocorrelazione |
| Redditività del capitale proprio ROE GINI (With Controls) | BP Hetero Test | 2.648 | 0.754 | Assenza di eteroschedasticità |
| Redditività del totale attivo ROA CR4 (No Controls) | Hausman Test | 0.009 | 0.926 | Modelli a effetti casuali preferibile |
| Redditività del totale attivo ROA CR4 (No Controls) | BP Effects Test | 1.115 | 0.291 | Effetti significativi, panel raccomandato |
| Redditività del totale attivo ROA CR4 (No Controls) | Wooldridge Test | 45.952 | 0.000 | Presenza di autocorrelazione |
| Redditività del totale attivo ROA CR4 (No Controls) | BP Hetero Test | 9.319 | 0.002 | Presenza di eteroschedasticità |
| Redditività del totale attivo ROA CR4 (With Controls) | Hausman Test | 10.068 | 0.073 | Modelli a effetti casuali preferibile |
| Redditività del totale attivo ROA CR4 (With Controls) | BP Effects Test | 0.217 | 0.642 | Effetti significativi, panel raccomandato |
| Redditività del totale attivo ROA CR4 (With Controls) | Wooldridge Test | 44.301 | 0.000 | Presenza di autocorrelazione |
| Redditività del totale attivo ROA CR4 (With Controls) | BP Hetero Test | 14.008 | 0.016 | Presenza di eteroschedasticità |
| Redditività del totale attivo ROA HHI (No Controls) | Hausman Test | 0.020 | 0.887 | Modelli a effetti casuali preferibile |
| Redditività del totale attivo ROA HHI (No Controls) | BP Effects Test | 1.110 | 0.292 | Effetti significativi, panel raccomandato |
| Redditività del totale attivo ROA HHI (No Controls) | Wooldridge Test | 45.281 | 0.000 | Presenza di autocorrelazione |
| Redditività del totale attivo ROA HHI (No Controls) | BP Hetero Test | 11.089 | 0.001 | Presenza di eteroschedasticità |
| Redditività del totale attivo ROA HHI (With Controls) | Hausman Test | 4.827 | 0.437 | Modelli a effetti casuali preferibile |
| Redditività del totale attivo ROA HHI (With Controls) | BP Effects Test | 0.072 | 0.788 | Effetti significativi, panel raccomandato |
| Redditività del totale attivo ROA HHI (With Controls) | Wooldridge Test | 44.685 | 0.000 | Presenza di autocorrelazione |
| Redditività del totale attivo ROA HHI (With Controls) | BP Hetero Test | 12.738 | 0.026 | Presenza di eteroschedasticità |
| Redditività del totale attivo ROA GINI (No Controls) | Hausman Test | 0.431 | 0.511 | Modelli a effetti casuali preferibile |
| Redditività del totale attivo ROA GINI (No Controls) | BP Effects Test | 1.059 | 0.303 | Effetti significativi, panel raccomandato |
| Redditività del totale attivo ROA GINI (No Controls) | Wooldridge Test | 43.273 | 0.000 | Presenza di autocorrelazione |
| Redditività del totale attivo ROA GINI (No Controls) | BP Hetero Test | 1.250 | 0.264 | Assenza di eteroschedasticità |
| Redditività del totale attivo ROA GINI (With Controls) | Hausman Test | 5.408 | 0.368 | Modelli a effetti casuali preferibile |
| Redditività del totale attivo ROA GINI (With Controls) | BP Effects Test | 0.128 | 0.720 | Effetti significativi, panel raccomandato |
| Redditività del totale attivo ROA GINI (With Controls) | Wooldridge Test | 39.004 | 0.001 | Presenza di autocorrelazione |
| Redditività del totale attivo ROA GINI (With Controls) | BP Hetero Test | 11.870 | 0.037 | Presenza di eteroschedasticità |
| EBITDA Vendite CR4 (No Controls) | Hausman Test | 0.053 | 0.817 | Modelli a effetti casuali preferibile |
| EBITDA Vendite CR4 (No Controls) | BP Effects Test | 3.141 | 0.076 | Effetti significativi, panel raccomandato |
| EBITDA Vendite CR4 (No Controls) | Wooldridge Test | 44.626 | 0.000 | Presenza di autocorrelazione |
| EBITDA Vendite CR4 (No Controls) | BP Hetero Test | 14.738 | 0.000 | Presenza di eteroschedasticità |
| EBITDA Vendite CR4 (With Controls) | Hausman Test | 46.053 | 0.000 | Modelli a effetti fissi preferibile |
| EBITDA Vendite CR4 (With Controls) | BP Effects Test | 2.502 | 0.114 | Effetti significativi, panel raccomandato |
| EBITDA Vendite CR4 (With Controls) | Wooldridge Test | 38.778 | 0.001 | Presenza di autocorrelazione |
| EBITDA Vendite CR4 (With Controls) | BP Hetero Test | 29.818 | 0.000 | Presenza di eteroschedasticità |
| EBITDA Vendite HHI (No Controls) | Hausman Test | 0.328 | 0.567 | Modelli a effetti casuali preferibile |
| EBITDA Vendite HHI (No Controls) | BP Effects Test | 3.031 | 0.082 | Effetti significativi, panel raccomandato |
| EBITDA Vendite HHI (No Controls) | Wooldridge Test | 46.804 | 0.000 | Presenza di autocorrelazione |
| EBITDA Vendite HHI (No Controls) | BP Hetero Test | 7.206 | 0.007 | Presenza di eteroschedasticità |
| EBITDA Vendite HHI (With Controls) | Hausman Test | 26.918 | 0.000 | Modelli a effetti fissi preferibile |
| EBITDA Vendite HHI (With Controls) | BP Effects Test | 3.916 | 0.048 | Effetti non significativi, OLS potrebbe essere adeguato |
| EBITDA Vendite HHI (With Controls) | Wooldridge Test | 32.270 | 0.006 | Presenza di autocorrelazione |
| EBITDA Vendite HHI (With Controls) | BP Hetero Test | 20.382 | 0.001 | Presenza di eteroschedasticità |
| EBITDA Vendite GINI (No Controls) | Hausman Test | 0.348 | 0.555 | Modelli a effetti casuali preferibile |
| EBITDA Vendite GINI (No Controls) | BP Effects Test | 2.646 | 0.104 | Effetti significativi, panel raccomandato |
| EBITDA Vendite GINI (No Controls) | Wooldridge Test | 46.667 | 0.000 | Presenza di autocorrelazione |
| EBITDA Vendite GINI (No Controls) | BP Hetero Test | 0.023 | 0.879 | Assenza di eteroschedasticità |
| EBITDA Vendite GINI (With Controls) | Hausman Test | 6.319 | 0.276 | Modelli a effetti casuali preferibile |
| EBITDA Vendite GINI (With Controls) | BP Effects Test | 1.531 | 0.216 | Effetti significativi, panel raccomandato |
| EBITDA Vendite GINI (With Controls) | Wooldridge Test | 42.519 | 0.000 | Presenza di autocorrelazione |
| EBITDA Vendite GINI (With Controls) | BP Hetero Test | 25.926 | 0.000 | Presenza di eteroschedasticità |